<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML>
 <HEAD>
  <TITLE>Debian Jigdo mini-HOWTO</TITLE><META NAME="GENERATOR"
  CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD>
 <BODY CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF"
  VLINK="#840084" ALINK="#0000FF">
  <DIV>
   <DIV>
    <H1><A NAME="AEN2">Debian Jigdo mini-HOWTO</A></H1>
    <H3><A NAME="AEN5">Peter Jay Salzman</A></H3>
    <DIV>
     <DIV>
      <P><CODE>&#60;<A HREF="mailto:p@dirac.orgZZZ">p@dirac.orgZZZ</A
       >&#62;</CODE></P></DIV></DIV>
    <P>Copyright &copy; 2001 Peter Jay Salzman</P>
    <P>2005-12-05 ver 1.8<BR></P>
    <DIV>
     <DIV><A NAME="AEN21"></A>
      <P><B>Abstract</B></P>
      <P>Getting Debian ISOs has always been a painful, slow and supremely
       inefficient process. Jigdo is a tool for distributing and obtaining
       Debian ISOs in an easy, fast and very efficient manner. This HOWTO
       describes why you should use jigdo, a little bit about how it works
       and how you use it to get and update Debian ISOs.</P>
      <P>Jigdo is a very general tool, and isn't tied specifically to
       Debian ISOs. The jigdo tools can be used to make any ISO available
       for download in the same easy, fast and efficient manner they're
       used for Debian ISOs. This HOWTO will cover this as well, but we'll
       focus primarily on downloading Debian ISOs.</P></DIV></DIV><HR
    ></DIV>
   <DIV>
    <DL>
     <DT><B>Table of Contents</B></DT>
     <DT>1. <A HREF="#ADMINISTRATA">Administrata</A></DT>
     <DD>
      <DL>
       <DT>1.1. <A HREF="#AUTHORSHIP">Authorship and Copyright</A></DT>
       <DT>1.2. <A HREF="#ACKNOWLEDGEMENTS">Acknowledgements</A></DT>
       <DT>1.3. <A HREF="#AEN48">Comments and Corrections</A></DT>
       <DT>1.4. <A HREF="#VERSION">Latest Version And Translations</A></DT
       ></DL></DD>
     <DT>2. <A HREF="#WHYJIGDO">Why jigdo?</A></DT>
     <DD>
      <DL>
       <DT>2.1. <A HREF="#AEN97">How Does One Get A Debian ISO Image
        Set?</A></DT>
       <DT>2.2. <A HREF="#WHYNOTDOWNLOADTHEWHOLEISOIMAGE">Why Not Download
        The Whole ISO Image?</A></DT>
       <DT>2.3. <A HREF="#WHATISJIGDO">What Is Jigdo?</A></DT></DL></DD>
     <DT>3. <A HREF="#HOWJIGDOWORKS">How Jigdo Works (optional)</A></DT>
     <DD>
      <DL>
       <DT>3.1. <A HREF="#PREPARINGTHEISOFORDOWNLOAD">Preparing The ISO For
        Download</A></DT>
       <DT>3.2. <A HREF="#THE.TEMPLATEFILE">The .template File</A></DT>
       <DT>3.3. <A HREF="#THE.JIGDOFILE">The .jigdo File</A></DT>
       <DT>3.4. <A HREF="#DOWNLOADINGTHEIMAGE">Downloading The Image</A
        ></DT></DL></DD>
     <DT>4. <A HREF="#DOWNLOADINGYOURFIRSTIMAGE">Downloading Your First
      Image (In 5 Easy Steps)</A></DT>
     <DD>
      <DL>
       <DT>4.1. <A HREF="#AEN208">Install Jigdo</A></DT>
       <DT>4.2. <A HREF="#DOWNLOADTHE.TEMPLATEAND.JIGDOFILES">Download The
        .template And .jigdo Files</A></DT>
       <DT>4.3. <A HREF="#RUNJIGDO-LITE">Run jigdo-lite</A></DT>
       <DT>4.4. <A HREF="#SPECIFYAMIRROR">Specify A Mirror</A></DT>
       <DT>4.5. <A HREF="#DOWNLOADINGOFTHEISO">Downloading Of The ISO</A
        ></DT></DL></DD>
     <DT>5. <A HREF="#UPDATINGYOURIMAGE">Updating Your Image</A></DT>
     <DT>6. <A HREF="#FAQ">Frequently Asked Questions</A></DT>
     <DD>
      <DL>
       <DT>6.1. <A HREF="#AEN351">Why does jidgo ask <SPAN><I>twice</I
        ></SPAN> for scanning for existing files? Is it enough to say yes
        once ?</A></DT>
       <DT>6.2. <A HREF="#AEN357">Jigdo Has Problems Downloading Certain
        Filenames.</A></DT>
       <DT>6.3. <A HREF="#USEPROXY">How do I make jigdo use my proxy?</A
        ></DT>
       <DT>6.4. <A HREF="#AEN384">Jigdo-lite fails with an error - have I
        downloaded all those MBs in vain?</A></DT>
       <DT>6.5. <A HREF="#DISACKNOWLEDGEMENTS">[11 Aug 2002]: Why aren't
        the translations of this HOWTO on LDP?</A></DT>
       <DT>6.6. <A HREF="#INTERRUPTED">What do I do if my jigdo download
        gets interrupted?</A></DT>
       <DT>6.7. <A HREF="#AEN433">My jigdo download won't complete because
        the .jigdo file is broken. When I download a new, fixed .jigdo
        file, do I need to download all the data over again?</A></DT>
       <DT>6.8. <A HREF="#DVDSIZEDIMAGES">Can I use jigdo to download
        images for DVD?</A></DT>
       <DT>6.9. <A HREF="#AEN450">Can I burn the <TT>.iso.tmp</TT> file to
        CD?</A></DT>
       <DT>6.10. <A HREF="#AEN457">Jigdo-lite is broken! It downloads
        packages and deletes them. I know it doesn't write them to the <TT
        >iso.tmp</TT> file because the file size doesn't change!</A></DT>
       <DT>6.11. <A HREF="#TROUBLEWITHJIGDOEASY">I'm having trouble getting
        jigdo-easy to work.</A></DT>
       <DT>6.12. <A HREF="#SCANMULTIPLEIMAGES">For image updates, I want
        jigdo-lite to scan 14 loop-mounted images in one go. How can I do
        this?</A></DT>
       <DT>6.13. <A HREF="#WGETOPTIONS">Jigdo-lite is too verbose. How can
        I supress some or all of its messages?</A></DT>
       <DT>6.14. <A HREF="#OTHERPLATFORMS">Can I use jigdo on platforms
        other than Linux?</A></DT>
       <DT>6.15. <A HREF="#AEN500">On MS Windows, why do I get a "<TT>No
        such file or directory</TT>" error message?</A></DT>
       <DT>6.16. <A HREF="#AEN506">On MS Windows, why won't my image grow
        larger than 2GB?</A></DT>
       <DT>6.17. <A HREF="#AEN511">On MS Windows, <TT>jigdo-lite.bat</TT>
        fails with an error message saying "sh" was not found.</A></DT>
       <DT>6.18. <A HREF="#AEN524">Can I run multiple instances of
        jigdo-lite to download images in parallel?</A></DT>
       <DT>6.19. <A HREF="#AEN529">Is there a GUI interface available?</A
        ></DT></DL></DD>
     <DT>7. <A HREF="#ERRATA">Errata</A></DT>
     <DD>
      <DL>
       <DT>7.1. <A HREF="#JIGDO-EASY">jigdo-easy</A></DT>
       <DT>7.2. <A HREF="#MORE-ABOUT-SCAN">More About Scan Sources</A></DT
       >
       <DT>7.3. <A HREF="#JIGDO-FILE-CACHE">jigdo-file-cache.db</A></DT>
       <DT>7.4. <A HREF="#LINKS">Resources</A></DT></DL></DD></DL></DIV>
   <DIV>
    <H2><A NAME="ADMINISTRATA">1. Administrata</A></H2>
    <DIV>
     <H3><A NAME="AUTHORSHIP">1.1. Authorship and Copyright</A></H3>
     <P>This document is copyright (c) 2001 Peter Jay Salzman, <CODE
      >&#60;<A HREF="mailto:p@dirac.orgZZZ"><A HREF="mailto:p@dirac.orgZZZ"
      TARGET="_top">p@dirac.orgZZZ</A></A>&#62;</CODE>. Permission is
      granted to copy, distribute and/or modify this document under the
      terms of the Open Software License (OSL), version 1.1. I hate HOWTO's
      that include the license; it's a tree killer. You can read the OSL at
      <A HREF="http://opensource.org/licenses/osl-1.1.txt" TARGET="_top"
      >http://opensource.org/licenses/osl-1.1.txt</A>.</P>
     <P>If you want to create a derivative work or publish this HOWTO for
      commercial purposes, I'd appreciate it if you contact me first. This
      will give me a chance to give you the most recent version. I'd also
      appreciate either a copy of whatever it is you're doing or a spinach,
      garlic, mushroom, feta cheese and artichoke heart pizza.</P></DIV>
    <DIV><HR>
     <H3><A NAME="ACKNOWLEDGEMENTS">1.2. Acknowledgements</A></H3>
     <P>I would like to thank the author of jigdo, <A
      HREF="mailto:atterer@debian.org" TARGET="_top">Richard Atterer</A>,
      simply for writing jigdo. Anyone who has obtained Debian ISOs by
      other means will know why. This HOWTO started out as some webpages I
      wrote about my experience with jigdo. Richard took the time to email
      me extensive corrections, clarifications and answers to questions I
      had about jigdo. Since then, he has read my work many times. Richard
      is a developer who not only cares about his work, but also about the
      people who use it. Sadly, this is becoming less common in this busy
      world we live in. Thanks, Richard!</P>
     <P>I'd also like to thank <A HREF="mailto:cnw@conradwood.netZZZ"
      TARGET="_top">Conrad Wood</A>, Elcio Mello, <A
      HREF="mailto:mramos@montevideo.com.uyZZZ" TARGET="_top">Marcelo
      Ramos</A>, Yufeng Wang, Tsukasa Yamaguchi, <A
      HREF="mailto:kozlov.y@gmail.comZZZ" TARGET="_top">Yuri Kozlov</A>,
      and <A HREF="mailto:oguzy@comu.edu.trZZZ" TARGET="_top">Oguz
      Yarimtepe</A> for translating this mini-HOWTO into languages other
      than English. I feel totally honored that they have found my words
      worthy of their time and effort. Thanks, guys!</P>
     <P>Lastly, I'd like to thank <A
      HREF="mailto:mark@panic.et.tudelft.nlZZZ" TARGET="_top">Mark van
      Lent</A>, Gordon Huff, David Anselmi, <A
      HREF="mailto:thierry.cabuzel@skynet.beZZZ" TARGET="_top">Thierry
      Cabuzel</A>, <A HREF="mailto:rlharris@hal-pc.orgZZZ" TARGET="_top"
      >Russell L. Harris</A>, and <A HREF="mailto:tux-master@web.deZZZ"
      TARGET="_top">Jens Seidel</A> for kind words and corrections.</P
     ></DIV>
    <DIV><HR>
     <H3><A NAME="AEN48">1.3. Comments and Corrections</A></H3>
     <P>I care a great deal about the people who use this document. Even
      mini-HOWTOs take a long time to write, and I wouldn't have invested
      so much effort into something people don't understand. If you have
      comments, corrections or suggestions, even in matters like writing
      style, don't hesitate to email me. As long as I'm not totally swamped
      by my PhD dissertation and the book I'm writing on debugging code
      with GDB/DDD for No Starch Press, I'll do my best to respond to each
      email I receive about this mini-HOWTO. News flash: I've completed my
      Ph.D.; now I'm swamped with job hunting. Does anyone need to hire a
      theoretical physicist?</P></DIV>
    <DIV><HR>
     <H3><A NAME="VERSION">1.4. Latest Version And Translations</A></H3>
     <P></P>
     <DIV>
      <DL>
       <DT>German:</DT>
       <DD>
        <P>Conrad Wood <CODE>&#60;<A HREF="mailto:cnw@conradwood.netZZZ"
         >cnw@conradwood.netZZZ</A>&#62;</CODE>.</P></DD>
       <DT>Portuguese</DT>
       <DD>
        <P>Elcio Mello.</P></DD>
       <DT>Spanish</DT>
       <DD>
        <P>Marcelo Ramos <CODE>&#60;<A
         HREF="mailto:mramos@montevideo.com.uyZZZ"
         >mramos@montevideo.com.uyZZZ</A>&#62;</CODE>.</P></DD>
       <DT>Chinese</DT>
       <DD>
        <P>Yufeng Wang</P></DD>
       <DT>Japanese</DT>
       <DD>
        <P>Tsukasa Yamaguchi. Available at <A
         HREF="http://www.linux.or.jp/JF/JFdocs/Debian-Jigdo" TARGET="_top"
         >http://www.linux.or.jp/JF/JFdocs/Debian-Jigdo</A>.</P></DD>
       <DT>Russian</DT>
       <DD>
        <P>Yuri Kozlov <CODE>&#60;<A HREF="mailto:kozlov.y@gmail.comZZZ"
         >kozlov.y@gmail.comZZZ</A>&#62;</CODE>. Available at <A
         HREF="http://alioth.debian.org/project/showfiles.php?group_id=30279"
         TARGET="_top"
         >http://alioth.debian.org/project/showfiles.php?group_id=30279</A
         >.</P></DD>
       <DT>Turkish</DT>
       <DD>
        <P>Oguz Yarimtepe <CODE>&#60;<A HREF="mailto:oguzy@comu.edu.trZZZ"
         >oguzy@comu.edu.trZZZ</A>&#62;</CODE>. Available at <A
         HREF="http://docs.comu.edu.tr/howto/debian-jidgo.html"
         TARGET="_top">http://docs.comu.edu.tr/howto/debian-jigdo.html</A
         >.</P></DD></DL></DIV>
     <P>In addition to the URLs given above, all the translations (as well
      as the English version) are available at my website: <A
      HREF="http://www.dirac.org/linux/debian/jigdo" TARGET="_top"
      >http://www.dirac.org/linux/debian/jigdo</A>. If you'd like to
      translate this mini-HOWTO to another language, please contact me at
      <CODE>&#60;<A HREF="mailto:p@dirac.orgZZZ"><A
      HREF="mailto:p@dirac.orgZZZ" TARGET="_top">p@dirac.orgZZZ</A></A
      >&#62;</CODE>.</P>
     <P>The English version of this HOWTO can also be found at The Linux
      Documentation Project: <A HREF="http://tldp.org/docs.html"
      TARGET="_top">http://tldp.org/docs.html</A>.</P></DIV></DIV>
   <DIV><HR>
    <H2><A NAME="WHYJIGDO">2. Why jigdo?</A></H2>
    <DIV>
     <H3><A NAME="AEN97">2.1. How Does One Get A Debian ISO Image Set?</A
      ></H3>
     <P>If you want a set of Debian CDs there are many ways of getting
      them. One way is to buy them from <A
      HREF="http://www.debian.org/CD/vendors/" TARGET="_top">vendors</A>
      who sell Debian CDs. This definitely has merit since some of the
      vendors donate money back to the Debian project. Your donations help
      make sure that Debian is around for a long time.</P>
     <P>Another way of getting a set of Debian CDs is to burn your own set.
      This first entails obtaining an ISO image and then burning that ISO
      image to a blank CD. Before jigdo, there were two ways of creating
      Debian CDs:</P>
     <P></P><OL TYPE="1"><LI>
     <P>Downloading the entire ISO</P></LI><LI>
     <P>Using the pseudo-image kit (PIK)</P></LI></OL>
     <P>This document is about the newer and better way of obtaining Debian
      ISO images, using a tool called jigdo. In fact, the PIK is now
      officially dead and all further references to it have been removed
      from this document. The canonical method of getting Debian ISO images
      is with jigdo.</P></DIV>
    <DIV><HR>
     <H3><A NAME="WHYNOTDOWNLOADTHEWHOLEISOIMAGE">2.2. Why Not Download The
      Whole ISO Image?</A></H3>
     <P>There are mirrors which offer http and ftp downloads of Debian
      ISOs. The problem is that there are very few mirror sites, and their
      bandwidth can't support everyone who wants Debian ISOs. For example,
      fsn.hu has reportedly saturated the connection of its provider. The
      outgoing traffic reaches a few terabytes per month!</P>
     <P>In addition, Debian testing and unstable get updated often. Your
      ISOs may become outdated the same day you download them unless you
      find some sneaky way of updating them like mounting the ISO on a
      loopback device and using rsync (which is what the PIK did). So if
      you want up-to-date ISO images, you must download a new set of ISO
      images every day. Clearly, this is not the way you want to obtain
      Debian ISOs!</P>
     <P>Even if you want to download the stable ISO images, they still get
      updated every few months. Downloading the ISO images will give you
      up-to-date images for a few months, but every time a new revision of
      Debian stable is released, you'll need to go through the painful
      process of downloading the entire ISO set from scratch. This is not a
      good use of your time and the mirror's resources.</P></DIV>
    <DIV><HR>
     <H3><A NAME="WHATISJIGDO">2.3. What Is Jigdo?</A></H3>
     <P>Jigdo (which stands for "Jigsaw Download") was written by <A
      HREF="mailto:atterer@debian.org" TARGET="_top">Richard Atterer</A>
      and is released under the GNU GPL. It's a tool that allows efficient
      downloading and updating of an ISO image. Any ISO image. Jigdo is not
      Debian specific, however Debian has chosen it to be the official
      method of downloading ISO images.</P>
     <P>A common misconception is that jigdo creates ISO images; it
      doesn't. Let's discuss the overall process of how jigdo allows you to
      obtain an ISO image. Let Adam (a Debian release manager) be the
      person offering the ISO image. Let Betty (a Debian user) be the
      person who wants to download the ISO image.</P>
     <P></P><OL TYPE="1"><LI>
     <P>Adam first creates an ISO image suitable for burning a CD. He might
      use a utility like <SPAN>mkisofs</SPAN> or <SPAN>debian-cd</SPAN> to
      create the ISO image. He also creates two small files associated with
      his newly created image: a <TT>.jigdo</TT> file and a <TT
      >.template</TT> file. He makes these two files available for download
      to anyone who wants to obtain his ISO image.</P></LI><LI>
     <P>Betty then downloads the <TT>.jigdo</TT> and <TT>.template</TT>
      files. She uses <SPAN>jigdo-lite</SPAN> along with these two files to
      download Adam's ISO image.</P></LI><LI>
     <P>When Debian gets updated, Adam creates a new version of the ISO and
      generates new <TT>.jigdo</TT> and <TT>.template</TT> files.</P></LI
     ><LI>
     <P>When Betty wants to update her CDs, she downloads the new <TT
      >.jigdo</TT> and <TT>.template</TT> files and uses them with <SPAN
      >jigdo-light</SPAN> to update her copy of the ISO images. The
      important thing here is that she only downloads the differences
      between her old ISO and Adam's new ISO. She does not have to
      re-download the parts that are unchanged.</P></LI></OL>
     <P>Jigdo comes with two utilities: <SPAN>jigdo-file</SPAN> (used by
      Adam) which creates the <TT>.jigdo</TT> and <TT>.template</TT> files,
      and <SPAN>jigdo-lite</SPAN> (used by Betty) which uses these two
      files to download or update the ISO. If all you want to do is
      obtain/update Debian ISOs, you'll only use <SPAN>jigdo-lite</SPAN>.
      You can forget that jigdo-file even exists. &nbsp; :-)</P>
     <P>Jigdo addresses all the problems with the other methods of
      obtaining Debian ISO images:</P>
     <P></P><UL><LI>
     <P>It's much faster than downloading the entire ISO image.</P></LI
     ><LI>
     <P>Unlike downloading the entire ISO image, it can take an outdated CD
      (or a loop mounted outdated ISO image), download <SPAN><I>only</I
      ></SPAN> the files that have changed since the CD (or ISO image) was
      created and create a new updated ISO. Very similar to how you use cvs
      to update source code.</P></LI><LI>
     <P>jigdo-lite uses wget which, by default, uses http to transfer
      files. Unlike rsync, http is never blocked by firewalls (except the
      ones behind which you shouldn't be using jigdo to begin with).</P
     ></LI><LI>
     <P>Jigdo is very kind to the bandwidth of the servers offering the
      Debian images. The Debian mirrors can handle a bigger load of people
      using jigdo to download Debian images than with other methods of
      getting them.</P></LI></UL>
     <P>Clearly, jigdo is the best method of obtaining Debian ISO
      images.</P></DIV></DIV>
   <DIV><HR>
    <H2><A NAME="HOWJIGDOWORKS">3. How Jigdo Works (optional)</A></H2>
    <P>You don't need to know this material to download Debian ISOs, but it
     may help demystify how jigdo works. If you're not interested in the
     details, simply fast forward to <A HREF="#DOWNLOADINGYOURFIRSTIMAGE"
     >Section 4</A>, "How Do I Use Jigdo".</P>
    <DIV><HR>
     <H3><A NAME="PREPARINGTHEISOFORDOWNLOAD">3.1. Preparing The ISO For
      Download</A></H3>
     <P>A CD image is a filesystem called iso9660, but for this discussion,
      we can safely talk about a CD image as being a big file called an
      "ISO image" (about 650MB) that contains files at various offsets. For
      instance, if a CD contains a 567 byte file named README, the ISO
      image might contain the README file's contents between offsets
      20480000 and 20480567. You can visualize a CD image as:</P><PRE>                    --------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                    --------------------------------------------------------
      </PRE>
     <P>The "x" areas of the image contain things like directory
      information, zero padding, disk name, boot block, etc.</P>
     <P><SPAN>jigdo-file</SPAN> takes two things as input: the complete CD
      image (so the ISO already needs to have been made) and a set of files
      which may or may not be in the image. Here's a visualization of
      jigdo-file's input:</P><PRE>                    --------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                    --------------------------------------------------------

                         ----------  ----------              ----------    ----------
      Loose Files:       | file-0 |  | file-1 |              | file-3 |    | file-4 |
                         ----------  ----------              ----------    ----------
      </PRE>
     <P>Through magic, jigdo-file finds out which of the loose files are
      contained in the ISO image and their offsets within the ISO file. It
      outputs two files: a ".template" file and a ".jigdo" file.</P></DIV>
    <DIV><HR>
     <H3><A NAME="THE.TEMPLATEFILE">3.2. The .template File</A></H3>
     <P>Given an input of an ISO image and a set of files which may or may
      not be in the ISO image, jigdo-file outputs a .template file for that
      ISO image. Here's what the <TT>.template</TT> file looks like:</P><PRE>                    --------------------------------------------------------
      .template:    |xxxx| md5-0  |xx| md5-1  |xxx|cccccccc|x| md5-3  |xxxx|
                    --------------------------------------------------------
      </PRE>
     <P>jigdo-file found that the files <TT>file-0</TT>, <TT>file-1</TT>
      and <TT>file-3</TT> were contained in the ISO image. It removed the
      contents of the these files and replaced them with each file's md5
      checksum (the <TT>md5-0</TT>, <TT>md5-1</TT>, etc).</P>
     <P>The "<TT>x</TT>" data (directory information, zero padding, etc)
      within the ISO image is compressed and written to the .template file.
      Finally, any files within the ISO image that weren't supplied as
      loose files (like <TT>file-2</TT>) are also compressed and written to
      the .template file. This is shown as "<TT>c</TT>" data in the
      .template file visualization.</P>
     <P>Loose files which were supplied to <SPAN>jigdo-file</SPAN> that
      aren't found in the ISO image (like <TT>file-4</TT>) are ignored.</P
     ></DIV>
    <DIV><HR>
     <H3><A NAME="THE.JIGDOFILE">3.3. The .jigdo File</A></H3>
     <P>Given an input of an ISO image and a set of loose files which may
      or may not be in the ISO image, jigdo-file outputs a .jigdo file for
      that ISO image. The Debian .jigdo files are gzipped, so you need to
      use zcat or zless to view them. Here's what a .jigdo file looks like
      when you gunzip it:</P><PRE>      md5-0=http://somemirror.org/file-0
      md5-1=http://somemirror.org/file-1
      md5-2=http://somemirror.org/file-2
      md5-3=http://somemirror.org/file-3
      </PRE>
     <P>The .jigdo file simply provides a mapping between the md5sum of a
      file within the ISO image and the download URL of that file. There
      are some other things within the <TT>.jigdo</TT> file, and if you
      look through it, you'll see the <TT>.jigdo</TT> file has the same
      format as a ".ini" file. It should be self explanatory, but if you
      want the nitty-gritty details, see the jigdo documentation.</P>
     <P>The format shown above is not quite what you'd see in a typical
      .jigdo file, but it's very similar. If you look at the [Servers]
      section at the bottom of the .jigdo file, you'll see exactly what the
      difference is between what I showed above and an actual <TT
      >.jigdo</TT> file.</P></DIV>
    <DIV><HR>
     <H3><A NAME="DOWNLOADINGTHEIMAGE">3.4. Downloading The Image</A></H3>
     <P>Once you use <SPAN>jigdo-file</SPAN> to generate a <TT>.jigdo</TT>
      and .<TT>template</TT> file for an ISO image, anyone can use <SPAN
      >jigdo-lite</SPAN> to download that image. jigdo-lite downloads all
      the files of a Debian ISO using <SPAN>wget</SPAN>, assembles them and
      forms a copy of the original ISO image on the fly.</P></DIV></DIV>
   <DIV><HR>
    <H2><A NAME="DOWNLOADINGYOURFIRSTIMAGE">4. Downloading Your First Image
     (In 5 Easy Steps)</A></H2>
    <P>We'll assume that you're starting from scratch and don't have any
     Debian ISOs on hand. Once you burn your set of ISOs, you can use
     jigdo-lite later to update them. We'll cover updating your ISOs in the
     next section.</P>
    <DIV><HR>
     <H3><A NAME="AEN208">4.1. Install Jigdo</A></H3>
     <P>First install the jigdo-file package:</P><PRE>      # apt-get install jigdo-file
      </PRE>
     <P>Jigdo is under aggressive development. Bug fixes and enhancements
      are constant, so if you're using stable or testing, download
      jigdo-file from unstable at <A
      HREF="http://packages.debian.org/unstable/utils/jigdo-file.html"
      TARGET="_top"
      >http://packages.debian.org/unstable/utils/jigdo-file.html</A>. As of
      28 Nov 2005 it's at version 0.7.2-2.</P></DIV>
    <DIV><HR>
     <H3><A NAME="DOWNLOADTHE.TEMPLATEAND.JIGDOFILES">4.2. Download The
      .template And .jigdo Files</A></H3>
     <P>For each ISO image you want to download, you'll need both the
      .jigdo and .template file for that image. Both files follow the same
      naming convention:</P><PRE>      distro-arch-n.jigdo
      distro-arch-n.template
      </PRE>
     <P>where distro is the name of the distro (like "sarge"), arch is the
      architecture (like "i386") and n is the disk number (like "1").</P>
     <P>For example, sarge has 8 images, so you need to download 8 .jigdo
      files and 8 .template files. They can be downloaded from <A
      HREF="http://www.debian.org/CD/jigdo-cd/" TARGET="_top"
      >http://www.debian.org/CD/jigdo-cd/</A>. The first .jigdo and
      .template file are named <TT>sarge-i386-1.jigdo</TT> and <TT
      >sarge-i386-1.template</TT> respectively.</P></DIV>
    <DIV><HR>
     <H3><A NAME="RUNJIGDO-LITE">4.3. Run jigdo-lite</A></H3>
     <P>Run <SPAN>jigdo-lite</SPAN> and give it the <TT>.jigdo</TT> file of
      the image you want to download. Using Sarge as an example:</P><PRE>      lucifer$ ls
      sarge-i386-1.jigdo  sarge-i386-1.template
      lucifer$ jigdo-lite sarge-i386-1.jigdo 
      
      Jigsaw Download "lite"
      Copyright 2001-2003 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Getting mirror information from /etc/apt/sources.list
      
      -----------------------------------------------------------------
      Images offered by `sarge-i386-1.jigdo':
        1: 'Debian GNU/Linux testing "Sarge"
               - Official Snapshot i386 Binary-1 CD' (sarge-i386-1.iso)
      
      Further information about `sarge-i386-1.iso':
      Generated on Fri, 7 Feb 2003 20:31:28 -0700
      
      -----------------------------------------------------------------
      If you already have a previous version of the CD you are
      downloading, jigdo can re-use files on the old CD that are also
      present in the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom').
      Alternatively, just press enter if you want to start downloading
      the remaining files.
      Files to scan:
      </PRE>
     <P>If you suspended <SPAN>jigdo-lite</SPAN> with <B>control</B>+<B
      >z</B> (don't do this; I'll tell you what you'd see) and looked at
      the output of <B>ls</B>, you'd find a new file in the directory named
      <TT>sarge-i386-1.jigdo.unpacked</TT>. It turns out that .jigdo files
      are gzip'ed. This file is simply a gunzip'ed version of the <TT
      >.jigdo</TT> file.</P>
     <P>Right now, <SPAN>jigdo-lite</SPAN> is telling us that if we have an
      outdated version of first CD of sarge, we should give the pathname to
      the CD. This is how you update your ISO images (or complete your
      incomplete downloads). Since we're assuming that you're starting from
      scratch and have no Debian ISOs yet, we have nothing to scan. We'll
      cover this in <A HREF="#UPDATINGYOURIMAGE">Section 5</A>, so just
      press <B>ENTER</B>.</P>
     <P>See also <A HREF="#MORE-ABOUT-SCAN">Section 7.2</A>, "More About
      Scan Sources".</P></DIV>
    <DIV><HR>
     <H3><A NAME="SPECIFYAMIRROR">4.4. Specify A Mirror</A></H3>
     <P>You'll see:</P><PRE>      -----------------------------------------------------------------
      The jigdo file refers to files stored on Debian mirrors. Please
      choose a Debian mirror as follows: Either enter a complete URL
      pointing to a mirror (in the form
      `ftp://ftp.debian.org/debian/'), or enter any regular expression
      for searching through the list of mirrors: Try a two-letter
      country code such as `de', or a country name like `United
      States', or a server name like `sunsite'.
      Debian mirror [http://linux.csua.berkeley.edu/debian/]: 
			</PRE>
     <P>By default, <SPAN>jigdo-lite</SPAN> pulls the mirror from your <TT
      >/etc/apt/sources.list</TT>. If you want to use a different mirror,
      you would specify a different mirror here. If this is the mirror you
      want to use, press <B>ENTER</B>. Jigdo-lite will then write a <TT
      >.jigdo-lite</TT> file in your home directory.</P>
     <P>Next, if the <TT>.jigdo</TT> file you're using references a package
      which needs to be downloaded from a Non-US server, <SPAN
      >jigdo-lite</SPAN> will prompt you for a Debian Non-US mirror. The
      message displayed (and your response) will be very similar to the
      mirror dialog in the previous paragraph.</P><PRE>      -----------------------------------------------------------------
      The jigdo file also refers to the Non-US section of the Debian
      archive. Please repeat the mirror selection for Non-US. Do not
      simply copy the URL you entered above; this does not work because
      the path on the servers differs!
      Debian non-US mirror [http://linux.csua.berkeley.edu/debian-non-US//]: 
			</PRE>
     <P>Jigdo-lite will write your choice to <TT>~/.jigdo-lite</TT>.
      However, if the image you're about to download doesn't contain Non-US
      software you won't see this dialog.</P>
     <P>If you want to change the default mirrors you use with jigdo at any
      time in the future, you can modify these two lines in <TT
      >~/.jigdo-lite</TT>:</P><PRE>      debianMirror='http://some-mirror-to-use/debian/'
      nonusMirror='http://some-other-mirror/debian-non-US/'
      </PRE></DIV>
    <DIV><HR>
     <H3><A NAME="DOWNLOADINGOFTHEISO">4.5. Downloading Of The ISO</A></H3
     >
     <P>After you specify the mirror(s), <SPAN>jigdo-lite</SPAN> will begin
      downloading files to assemble the ISO image:</P><PRE>      Not downloading .template file - `sarge-i386-1.template' already present
      
      -----------------------------------------------------------------
      Merging parts from `file:' URIs, if any...
      Found 0 of the 826 files required by the template
      Will not create image or temporary file - try again with different input files
      --09:35:12--  http://mirror/debian/pool/main/p/pack/pack_3.10-1_i386.deb
          =&#62; `sarge-i386-1.iso.tmpdir/mirror/debian/pool/main/p/pack/pack_3.10-1_i386.deb
      Resolving linux.csua.berkeley.edu... done.
      Connecting to linux.csua.berkeley.edu[128.32.112.231]:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 1,911,624 [application/x-debian-package]
      
      19% [======&#62;                              ] 378,304      149.87K/s    ETA 00:09
      </PRE>
     <P>There'll be a lot of messages flying across your screen; if this is
      confusing to you, see <A HREF="#WGETOPTIONS">Section 6.13</A>. While
      jigdo-lite is downloading the packages, switch to another console (or
      open another xterm) and do an <B>ls</B> in the directory you're
      running jigdo-lite in. Now there should be 6 files in the
      directory:</P>
     <P></P><UL><LI>
     <P><TT>sarge-i386-1.iso.list</TT></P></LI><LI>
     <P><TT>sarge-i386-1.iso.tmp</TT></P></LI><LI>
     <P><TT>jigdo-file-cache.db</TT></P></LI><LI>
     <P><TT>sarge-i386-1.iso.tmpdir/</TT></P></LI><LI>
     <P><TT>sarge-i386-1.jigdo</TT></P></LI><LI>
     <P><TT>sarge-i386-1.jigdo.unpacked</TT></P></LI><LI>
     <P><TT>sarge-i386-1.template</TT></P></LI></UL>
     <P>The <TT>sarge-i386-1.iso.tmpdir/</TT> directory contains all the
      Debian packages that <SPAN>jigdo-lite</SPAN> downloads. Every so
      often, the directory gets flushed and the files get written to <TT
      >sarge-i386-1.iso.tmp</TT>, which is an temporarily incomplete
      version of the ISO image you want. Note that <TT
      >sarge-i386-1.iso.tmp</TT> won't appear until the first time <TT
      >sarge-i386-1.iso.tmpdir/</TT> gets flushed.</P>
     <P><TT>jigdo-file-cache.db</TT> is a Berekeley DB file containing
      md5sums of any files read in when you specify a directory at the <TT
      >Files to scan:</TT> prompt. It's described in <A
      HREF="#JIGDO-FILE-CACHE">Section 7.3</A>.</P>
     <P>At this point, go play some Quake III because this will take some
      time (you may want to play on a different machine because jigdo is
      very disk intensive when it flushes files to the <TT>.iso.tmp</TT>
      file). At some point, the download will finish and you'll be staring
      at:</P><PRE>      FINISHED --13:32:58--
      Downloaded: 7,469,872 bytes in 9 files
      Found 9 of the 9 files required by the template                              
      Successfully created `sarge-i386-3.raw'
      
      -----------------------------------------------------------------
      Finished!
      The fact that you got this far is a strong indication that `sarge-i386-3.raw'
      was generated correctly. I will perform an additional, final check,
      which you can interrupt safely with Ctrl-C if you do not want to wait.
      
      OK: Checksums match, image is good!   
			</PRE></DIV></DIV>
   <DIV><HR>
    <H2><A NAME="UPDATINGYOURIMAGE">5. Updating Your Image</A></H2>
    <P>Presumably, you've read the last section, followed the instructions,
     burned your newly created ISO files onto CD and are feeling warm and
     fuzzy. Sooner or later, some packages will get updated and now you
     want to donate your old CDs to some newbie at your local LUG's
     installfest and burn yourself a set of updated CDs. Since you're well
     on the way to becoming a jigdo-guru, we won't go into as much painful
     detail as we did in the last section.</P>
    <P>The first step is to download the .jigdo and .template files, again,
     for the images you want to update. You may wonder why you need to
     download them a second time. The reason is because the updated image
     you want to download has changed. Files may have been added or
     deleted, but even if not, any updated packages or files will have a
     different checksum from the checksum listed in the .jigdo and
     .template files you used when you first downloaded the images.</P>
    <P>At this point, you're either holding an outdated Debian CD in your
     hand or you have the CD's outdated ISO image on your hard drive. Let's
     go through the steps of getting an updated ISO file. If you have a CD,
     put it in your CD drive and mount it:</P><PRE>      $ mount /cdrom
	</PRE>
    <P>On the other hand, if you have an ISO file you'd like to update,
     mount it as a loop device (you may need to be root to do this). Using
     Woody as an example:</P><PRE>      # mount -o loop woody-i386-1.iso /mnt
	</PRE>
    <P>Now run <SPAN>jigdo-lite</SPAN> with the <TT>.jigdo</TT> file as an
     argument.</P><PRE>      $ jigdo-lite woody-i386-1.jigdo 
      
      -----------------------------------------------------------------
      Jigsaw Download "lite"
      Copyright 2001-2002 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Loading settings from `/home/p/.jigdo-lite'
      
      -----------------------------------------------------------------
      Images offered by `woody-i386-1.jigdo':
        1: Debian GNU/Linux 3.0 r0 Woody
             - Official i386 Binary-1 CD (debian-30r0-i386-binary-1.iso)
      
      Further information about `debian-30r0-i386-binary-1.iso':
      Generated on Thu, 18 Jul 2002 14:34:12 +0100
      
      -----------------------------------------------------------------
      If you already have a previous version of the CD you are
      downloading, jigdo can re-use files on the old CD that are also
      present on the new image, and you do not need to download them
      again.  You found the secret message; you're a very careful
      reader.  Mount the old CD ROM and enter the path it is mounted
      under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you
      want to start the download of any remaining files.
      
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan:
	</PRE>
    <P>jigdo-lite is asking us to give it the location of your mounted CD
     (if you're updating a CD) or your loop mounted ISO file (if you're
     using the ISO file). I'm using an ISO file loop mounted on <TT
     >/mnt</TT>, so I'll enter <TT>/mnt</TT>. If you're updating a CD,
     enter the mount directory of your CD, which is most likely <TT
     >/cdrom</TT>. In either case, <SPAN>jigdo-lite</SPAN> will scan the
     directory of your mounted media, determine which files need updating
     and re-use the files which don't need updating. See also <A
     HREF="#MORE-ABOUT-SCAN">Section 7.2</A>, "More About Scan Sources".</P
    >
    <P>You may see something like:</P><PRE>      Files to scan: /mnt/other
      
      Not downloading .template file - `woody-i386-1.template' already present
      jigdo-file: Output file `debian-30r0-i386-binary-1.iso' already exists - delete
      it or use --force
      jigdo-file failed with code 3 - aborting.
	</PRE>
    <P>What happened? Actually, I wanted to show you this because you'll
     bump into it sooner or later. I'm updating an ISO file, but the
     outdated image file is in the same directory I'm working in.
     Jigdo-lite wants to generate a file called <TT>woody-i386-1.iso</TT>
     but there's already a file by that name in the current directory (the
     outdated image). Jigdo-lite doesn't want to destroy that file, so it
     bails and lets me know that I can either delete that file or use <TT
     >--force</TT> to overwrite the file. You could also rename or move the
     file too, but I guess <SPAN>jigdo-lite</SPAN> assumes we already know
     this. &nbsp; :-)</P>
    <P>Don't be timid about moving or renaming the image file just because
     it's loop mounted. The filesystem uses inodes under the hood, and even
     if you move or rename the file, the inode stays the same. You won't
     hurt the filesystem mounted under <TT>/mnt</TT>. As for deleting the
     ISO file, that won't hurt the mounted filesystem either. A file's
     inode gets deallocated only when the inode's reference count drops to
     zero. Mounting the ISO image bumps the reference count up, so the file
     really gets deleted only after you <B>rm</B> the file <SPAN><I>and</I
     ></SPAN> umount the loop device. All you people who are updating the
     CD don't have to worry about any of this. :-)</P>
    <P>I'll rename the ISO file to <TT>woody-i386-1.iso.old</TT> and run
     <SPAN>jigdo-lite</SPAN> again. Let's try again:</P><PRE>      $ jigdo-lite woody-i386-1.jigdo
      
      -----------------------------------------------------------------
      Jigsaw Download "lite"
      Copyright 2001-2002 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Loading settings from `/home/p/.jigdo-lite'
      
      -----------------------------------------------------------------
      Images offered by `woody-i386-1.jigdo':
        1: Debian GNU/Linux 3.0 r0 Woody - Official i386 Binary-1 CD
             (debian-30r0-i386-binary-1.iso)

      Further information about `debian-30r0-i386-binary-1.iso':
      Generated on Thu, 18 Jul 2002 14:34:12 +0100
      
      -----------------------------------------------------------------
      If you already have a previous version of the image you are
      downloading, jigdo can re-use files on the old image that are also
      present on the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want
      to start the download of any remaining files.
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan: /mnt
      Not downloading .template file - `woody-i386-1.template' already present
      ...
      Found 1200 of the 1224 files required by the template                          
      ...</PRE>
    <P>jigdo-lite remembers that I wanted to scan <TT>/mnt</TT> and tells
     me I can either type <TT>1</TT> to scan that directory or type the
     directory in again. Since I'm a perverse person, I type the name of
     the directory again.</P>
    <P>The ellipsis represent some text that changes rapidly. The first
     ellipsis is a dynamic list of what files jigdo-lite is scanning. The
     second ellipses denotes progress in writing <TT
     >woody-i386-1.iso.tmp</TT>. Once jigdo-lite finishes scanning the
     files and writing the temporary ISO file, it prints:</P><PRE>      Copied input files to temporary file `woody-i386-1.iso.tmp'
         - repeat command and supply more files to continue
      
      -----------------------------------------------------------------
      If you already have a previous version of the image you are
      downloading, jigdo can re-use files on the old image that are also
      present on the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want
      to start the download of any remaining files.
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan: 
	</PRE>
    <P>Since you normally don't have another source of files to scan other
     than your loop mounted ISO file (or your CD), press <B>ENTER</B>.
     Jigdo-lite will then ask you about which mirrors you want to use, just
     like it did when you downloaded your ISO for the first time. You've
     already answered these questions before, but if you truly don't
     remember, you might want to re-read <A HREF="#SPECIFYAMIRROR">Section
     4.4</A>.</P>
    <P>At this point, you'll see <SPAN>jigdo-lite</SPAN> working its magic.
     Now wasn't that easy?</P></DIV>
   <DIV><HR>
    <H2><A NAME="FAQ">6. Frequently Asked Questions</A></H2>
    <P>Questions prepended with a date indicate a time sensitive question
     (a question that relates to a temporary situation). If you see one of
     these questions and know that the temporary situation has changed,
     please <A HREF="mailto:p@dirac.orgZZZ" TARGET="_top">contact me</A>
     and let me know so I can remove the question from the mini-HOWTO.</P>
    <DIV><HR>
     <H3><A NAME="AEN351">6.1. Why does jidgo ask <SPAN><I>twice</I></SPAN
      > for scanning for existing files? Is it enough to say yes once ?</A
      ></H3>
     <P>It keeps asking this as long as you enter a path to scan. The idea
      is that you may want to scan several old CDs, so you can insert one
      after the other into the drive and keep supplying the path "<TT
      >D:\</TT>" (or whatever). See also <A HREF="#MORE-ABOUT-SCAN"
      >Section 7.2</A>, "More About Scan Sources".</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN357">6.2. Jigdo Has Problems Downloading Certain
      Filenames.</A></H3>
     <P>When downloading Debian images under Windows, jigdo-lite may appear
      to have trouble downloading one or more of the following files:</P><PRE>      libbusiness-onlinepayment-bankofamerica-perl_xxx_all.deb
      libbusiness-onlinepayment-authorizenet-perl_xxx_all.deb
      libbusiness-onlinepayment-payconnect-perl_xxx_all.deb
      libmasonx-request-withapachesession-perl_xxx_all.deb
      libtemplate-plugin-calendar-simple-perl_xxx_all.deb
      </PRE>
     <P>Move the jigdo download directory up by as many directories as
      possible, closer to the drives's root directory.</P>
     <P>The NTFS filesystem has a 255 character limit on a file's pathname.
      When jigdo-lite downloads files from the internet, it makes a copy of
      the server directory structure in its download directory. With their
      very long names, the above Debian packages may exceed the allowed
      path length, which leads to error messages like "<TT>Cannot write to
      `[very long pathname]' (No such file or directory)</TT>".</P>
     <P>Some people may now wonder: Why does jigdo-lite use wget's "<TT
      >--force-directories</TT>" switch, which creates these problematic
      directory hierarchies?</P>
     <P>Early versions of jigdo-lite did not use it, but then some folks
      requested that jigdo-lite always use the "<TT>--continue</TT>" switch
      to avoid half-downloaded .deb files being ignored and deleted when
      you interrupt and restart jigdo-lite.</P>
     <P>Unfortunately, it turned out that this led to problems: The Debian
      servers contained several identically named files (e.g. "<TT
      >root.bin</TT>") in different directories, and if you interrupted
      jigdo-lite at roughly the right time during the download, the chances
      were high that the resumed download would append data to the wrong
      half-downloaded file, corrupting it and making the entire jigdo
      download fail.</P></DIV>
    <DIV><HR>
     <H3><A NAME="USEPROXY">6.3. How do I make jigdo use my proxy?</A></H3
     >
     <P>Edit <TT>~/.jigdo-lite</TT> (or <TT>jigdo-lite-settings.txt</TT>
      for the Microsoft Windows version) into a text editor and find the
      line that starts with "<TT>wgetOpts</TT>". The following switches can
      be added to that line:</P><PRE>      -e ftp_proxy=http://LOCAL-PROXY:PORT/
      -e http_proxy=http://LOCAL-PROXY:PORT/
      --proxy-user=USER
      --proxy-passwd=PASSWORD
      </PRE>
     <P>Of course, substitute the correct values for your proxy server. The
      last two options are only necessary if your proxy uses password
      authentication. The switches need to be added to the end of the
      wgetOpts line before the final <TT>'</TT> character. All options must
      be on one line.</P>
     <P>Alternatively, under Linux you can also set up the <CODE
      >ftp_proxy</CODE> and <CODE>http_proxy</CODE> environment variables,
      for example in the file <TT>/etc/environment</TT> or <TT
      >~/.bashrc</TT>.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN384">6.4. Jigdo-lite fails with an error - have I
      downloaded all those MBs in vain?</A></H3>
     <P>If <SPAN>jigdo-file</SPAN> aborts after downloading a considerable
      chunk of the ISO contents, you'll have a large "<TT>.iso.tmp</TT>"
      file. There are several things to try to salvage your download:</P>
     <P></P><UL><LI>
     <P>Restart the download by pressing <B>RETURN</B>. Maybe some of the
      files could not be downloaded because of timeouts or other transient
      errors. Try to download the missing files again.</P></LI><LI>
     <P>Try a different mirror. Some Debian mirrors are slightly out of
      sync -- maybe a different mirror still holds files that were deleted
      from the one you specified, or it has already been updated with files
      that are not yet present on your mirror. This has happened quite a
      few times with me.</P></LI><LI>
     <P>Retrieve the missing parts of the image using <A
      HREF="http://rsync.samba.org" TARGET="_top">rsync</A>. First, you
      need to find out the correct rsync URL of the image you are
      downloading: Choose a server that offers rsync access to the <A
      HREF="http://www.debian.org/CD/mirroring/rsync-mirrors" TARGET="_top"
      >stable</A> or <A HREF="http://www.debian.org/CD/http-ftp/#testing"
      TARGET="_top">testing</A> images, then determine the correct path and
      filename. Directory listings can be obtained with commands like <B
      >rsync rsync://cdimage.debian.org/debian-cd/</B>.</P>
     <P>Next, remove the "<TT>.tmp</TT>" extension from jigdo-lite's
      temporary file by renaming it, and pass both the remote URL and the
      local filename to rsync: <B>rsync
      rsync://server.org/path/binary-i386-1.iso binary-i386-1.iso</B> You
      may want to use rsync's <TT>--verbose</TT> and <TT>--progress</TT>
      switches to get status messages, and <TT>--block-size=8192</TT> to
      increase its speed.</P></LI><LI>
     <P>Under Linux, you can loop-mount the <TT>.tmp</TT> file to access
      the packages that were already downloaded, and reuse them for
      generating an image from a newer .jigdo file. To do this, first issue
      the following commands as root in the directory with the broken
      download: <B>mkdir mnt; mount -t iso9660 -o loop *.tmp mnt</B>. Next,
      start a new download in a different directory, and enter the path of
      the mnt directory at the "Files to scan" prompt.</P>
     <P>Under Microsoft Windows you can do the same thing by loop mounting
      the temporary ISO image using "virtual drive" software. <SPAN><A
      HREF="http://www.daemon-tools.cc" TARGET="_top">Daemon tools</A
      ></SPAN> and <SPAN>Nero Image Drive</SPAN> are both very popular. See
      also <A HREF="http://tinyurl.com/c39zr" TARGET="_top"
      >http://tinyurl.com/c39zr</A> for more options.</P></LI></UL></DIV>
    <DIV><HR>
     <H3><A NAME="DISACKNOWLEDGEMENTS">6.5. [11 Aug 2002]: Why aren't the
      translations of this HOWTO on LDP?</A></H3>
     <P>I've been having trouble getting the translations of this HOWTO
      submitted to the non-English LDP editors.</P>
     <P>The German LDP editor, Marco Budde <CODE>&#60;<A
      HREF="mailto:Budde@tu-harburg.de">Budde@tu-harburg.de</A>&#62;</CODE
      > refuses to accept the German translation because it was written in
      Docbook and not Linuxdoc, even though Docbook is the preferred SGML
      language for the LDP. It's a shame that we have people within the
      open source community who would sabotage our community from the
      inside.</P>
     <P>The Portuguese LDP editor, Alfredo Carvalho <CODE>&#60;<A
      HREF="mailto:ajpc@poli.org">ajpc@poli.org</A>&#62;</CODE>, has
      completely ignored my submission of the Portuguese translation.</P>
     <P>If you care about having LDP documents in these languages, I urge
      you to write to these editors and ask them to please be more
      responsible about accepting translated documents. For the time being,
      you can download these translations from my personal website, <A
      HREF="http://www.dirac.org/linux/debian/jigdo" TARGET="_top"
      >http://www.dirac.org/linux/debian/jigdo</A>.</P>
     <P>Shame on you, Marco Budde <CODE>&#60;<A
      HREF="mailto:Budde@tu-harburg.de">Budde@tu-harburg.de</A>&#62;</CODE
      >.</P>
     <P>Shame on you, Alfredo Carvalho <CODE>&#60;<A
      HREF="mailto:ajpc@poli.org">ajpc@poli.org</A>&#62;</CODE>.</P></DIV>
    <DIV><HR>
     <H3><A NAME="INTERRUPTED">6.6. What do I do if my jigdo download gets
      interrupted?</A></H3>
     <P>If your download gets interrupted, all you need to do is restart
      jigdo-lite and hit <B>ENTER</B> at all the question prompts.
      Jigdo-lite will pick up where it left off.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN433">6.7. My jigdo download won't complete because the
      .jigdo file is broken. When I download a new, fixed .jigdo file, do I
      need to download all the data over again?</A></H3>
     <P>You may find that the .jigdo file you downloaded is broken. It's
      uncommon, but it does happen from time to time with moving targets
      like Debian testing or unstable.</P>
     <P>If you find that <TT>.jigdo</TT> is broken, you'll need to download
      a new .jigdo file (when a fixed one becomes available), but you <SPAN
      ><I>won't</I></SPAN> need to download all the ISO data again.</P>
     <P>You can use the same loop mounting trick we use when updating an
      ISO image. The difference is that there's no finished .iso file to
      start with, but the .iso.tmp file is an ISO image too and can be used
      to finish the download without having to re-download all the data
      that was downloaded before the broken .jigdo file caused jigdo-lite
      to halt. Simply loop mount the .iso.tmp file on <TT>/mnt</TT> and
      when you re-run jigdo-lite with the fixed .jigdo file, tell
      jigdo-lite to scan <TT>/mnt</TT>. Don't forget to rename or move the
      .iso.tmp file so it doesn't interfere with jigdo-lite which will want
      to create a new .iso.tmp file.</P></DIV>
    <DIV><HR>
     <H3><A NAME="DVDSIZEDIMAGES">6.8. Can I use jigdo to download images
      for DVD?</A></H3>
     <P>Absolutely; the process is identical to downloading CD images. The
      only thing you need to do differently is to download the .jigdo and
      .template files for DVDs instead of CDs. You can find the DVD .jigdo
      and .template files at <A HREF="http://www.debian.org/CD/jigdo-cd/"
      TARGET="_top">http://www.debian.org/CD/jigdo-cd/</A>.</P>
     <P>On Linux, you need kernel 2.4 or later to create DVD-sized
      files.</P>
     <P>Under MS Windows, you need to use <TT>jigdo-win-0.7.1a</TT>
      (released 21 July 2004) or later to create DVD-sized images. This is
      because of a bug in the large file support of Mingw32, the compiler
      used to create the MS Windows executables. The bug got fixed on this
      date, and <TT>jigdo-win-0.7.1a</TT> was released.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN450">6.9. Can I burn the <TT>.iso.tmp</TT> file to
      CD?</A></H3>
     <P>Thanks to Gordon Huff and David Anselmi, we now know the answer is
      "yes you can". But more importantly, Gordon gave a good reason why
      you'd want to do this in the first place. Paraphrasing Gordon:</P><A
     NAME="AEN454"></A><BLOCKQUOTE>
     <P>My friend's Win98 has a *nice* cable connection. I arrive in the
      morning, start jigdo (more than one, actually) and then we go to the
      store, tie back the kiwi plant, put up the Christmas lights and
      Christmas tree, trim the tree, order and split a pizza and fire up
      the satellite dish.</P>
     <P>I leave my friends place with several iso.tmp's on CDRWs. When I
      get home, I use the iso's that didn't finish to update my jigdo setup
      at home which is a dial-up.</P></BLOCKQUOTE></DIV>
    <DIV><HR>
     <H3><A NAME="AEN457">6.10. Jigdo-lite is broken! It downloads packages
      and deletes them. I know it doesn't write them to the <TT
      >iso.tmp</TT> file because the file size doesn't change!</A></H3>
     <P>Jigdo works just fine -- the <TT>.iso.tmp</TT> file is created at
      the beginning with its final size, but filled with zero bytes. Later,
      parts of it are overwritten with the downloaded data.</P>
     <P>You can tell that jigdo is making progress by looking at the
      messages "<TT>Found X of the Y files required by the template</TT>"
      that are printed from time to time. The first value "<TT>X</TT>"
      should increase. When <TT>X</TT> equals <TT>Y</TT>, the download is
      finished.</P></DIV>
    <DIV><HR>
     <H3><A NAME="TROUBLEWITHJIGDOEASY">6.11. I'm having trouble getting
      jigdo-easy to work.</A></H3>
     <P>See <A HREF="#JIGDO-EASY">Section 7.1</A>.</P></DIV>
    <DIV><HR>
     <H3><A NAME="SCANMULTIPLEIMAGES">6.12. For image updates, I want
      jigdo-lite to scan 14 loop-mounted images in one go. How can I do
      this?</A></H3>
     <P>When updating CD images, it's tiresome to keep loop-mounting and
      unmounting images. However, by default the Linux kernel only supports
      eight loop devices, and jigdo-lite's menu of previously entered paths
      only has five entries.</P>
     <P>To scan many loop-mounted images, you must first tell the Linux
      kernel to support more than the default eight devices. This is done
      by giving the "<TT>max_loop</TT>" parameter to the module when
      loading it, e.g. with "<TT>modprobe loop max_loop=16</TT>" on the
      command line or by adding the line "<TT>options loop max_loop=16</TT
      >" to <TT>/etc/modules.conf</TT>. In Debian, you must put this line
      into a file named e.g. <TT>/etc/modutils/local-loop</TT> and then run
      <B>update-modules</B> because direct changes to <TT
      >/etc/modules.conf</TT> will be overwritten.</P>
     <P>Having mounted the individual images, you can pass the parent
      directory of their mount points to jigdo-lite for scanning. For
      example, if the images are mounted under <TT
      >/mnt/myloopmounts/image1/</TT> etc., pass "<TT
      >/mnt/myloopmounts</TT>" as the path to scan. If passing the parent
      directory is inconvenient, you can also create a directory and fill
      it with symlinks to the mount points.</P></DIV>
    <DIV><HR>
     <H3><A NAME="WGETOPTIONS">6.13. Jigdo-lite is too verbose. How can I
      supress some or all of its messages?</A></H3>
     <P>Jigdo-lite uses wget, and wget's output can be quite verbose. If
      this is unsettling, you can make wget more quiet by adding <TT
      >--non-verbose</TT> to the <TT>wgetOpts</TT> switch in your <TT
      >~/.jigdo-lite</TT> file. If you want wget to print no messages at
      all, use <TT>--quiet</TT> in the <TT>wgetOpts</TT> switch.</P></DIV>
    <DIV><HR>
     <H3><A NAME="OTHERPLATFORMS">6.14. Can I use jigdo on platforms other
      than Linux?</A></H3>
     <P>Certainly. If you're interested in Potato or Woody under Microsoft
      Windows, old SunOS, HP-UX and IRIX you can use jigdo-easy. See <A
      HREF="#JIGDO-EASY">Section 7.1</A> and <A HREF="#LINKS">Section
      7.4</A>.</P>
     <P>If you want to download Potato, Woody, Sarge or Sid under Microsoft
      Windows, jigdo-lite has been ported to that platform and can be
      downloaded from the main jigdo site (<A HREF="#LINKS">Section 7.4</A
      >).</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN500">6.15. On MS Windows, why do I get a "<TT>No such
      file or directory</TT>" error message?</A></H3>
     <P>You might find that under MS Windows, jigdo-lite will download some
      files but then fail to read their contents, which will produce a "<TT
      >No such file or directory</TT>" error message. </P>
     <P>It seems that this occurs if the length of the filenames that jigdo
      processes exceeds a certain limit. The solution is to move the
      half-finished download up in the directory hierarchy, closer to the
      top-level directory of the drive.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN506">6.16. On MS Windows, why won't my image grow
      larger than 2GB?</A></H3>
     <P>You're using an old version of jigdo. Please upgrade to <TT
      >jigdo-win-0.7.1a </TT> or newer. See <A HREF="#DVDSIZEDIMAGES"
      >Section 6.8</A>.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN511">6.17. On MS Windows, <TT>jigdo-lite.bat</TT>
      fails with an error message saying "sh" was not found.</A></H3>
     <P>This means that the <TT>PATH</TT> command in the <TT>.bat</TT> file
      failed. For some reason, this is the case if you unpacked jigdo on a
      Windows network share using a path like "<TT
      >\\SomeServer\Files\jigdo</TT>". Solution: Use "<B>Map network
      drive</B>" (in the explorer "tools" menu) to assign a drive letter
      like "<TT>Z:</TT>", then double-click on the <TT>.bat</TT> file
      inside "<TT>Z:\jigdo</TT>". Alternatively, a workaround is to move
      everything in the <TT>jigdo-bin</TT> subdirectory up to where the <TT
      >.bat</TT> file is.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN524">6.18. Can I run multiple instances of jigdo-lite
      to download images in parallel?</A></H3>
     <P>Absolutely. However, to avoid filename clashing, you should run
      each <SPAN>jigdo-lite</SPAN> instance in its own separate directory.
      You can start as many instances as you want, go to bed, and when you
      wake up, all the ISO images will be waiting for you on your hard
      drive. Be aware that <SPAN>jigdo-lite</SPAN> is bandwidth and CPU
      intensive, so you won't want to use your computer with multiple
      instances running in tandem.</P></DIV>
    <DIV><HR>
     <H3><A NAME="AEN529">6.19. Is there a GUI interface available?</A
      ></H3>
     <P>A GTK+ interface to jigdo is being worked on. Both Linux and
      Microsoft Windows GUI clients are planned. Unfortunately, it's been
      80% done for over 1.5 years, so don't hold your breath for its
      release.</P></DIV></DIV>
   <DIV><HR>
    <H2><A NAME="ERRATA">7. Errata</A></H2>
    <DIV>
     <H3><A NAME="JIGDO-EASY">7.1. jigdo-easy</A></H3>
     <P>Jigdo-easy, by Anne Bezemer, is a fork of <SPAN>jigdo-lite</SPAN>
      which is portable to a wider range of systems, including Microsoft
      Windows, old SunOS, HP-UX and IRIX). It's also easier to use than
      jigdo-lite but because of changes made to Jigdo, will only work with
      Potato and Woody. Jigdo-easy will not be able to download Sarge and
      Sid. See <A HREF="#LINKS">Section 7.4</A> and <A
      HREF="#OTHERPLATFORMS">Section 6.14</A>.</P></DIV>
    <DIV><HR>
     <H3><A NAME="MORE-ABOUT-SCAN">7.2. More About Scan Sources</A></H3>
     <P>By now you know that when <SPAN>jigdo-lite</SPAN> asks for files to
      scan, you can use 3 sources:
      <P></P><UL><LI STYLE="list-style-type: disc">
      <P>A mounted copy of an outdated CD or DVD that you wish to
       update.</P></LI><LI STYLE="list-style-type: disc">
      <P>A loop-mounted copy of an outdated ISO image file on your hard
       drive.</P></LI><LI STYLE="list-style-type: disc">
      <P>A loop-mounted copy of the temporary <TT>.iso.tmp</TT> file, when
       a previous <SPAN>jigdo-lite</SPAN> run aborted.</P></LI></UL> </P>
     <P>As Jens Seidel points out, there is another, rather crafty, source
      you should use for a scanning source: your apt cache. Apt uses the
      directory <TT>/var/cache/apt/archives</TT> for cache. There will be
      many Debian packages sitting in this directory, and they can be used
      for a scan source for <SPAN>jigdo-lite</SPAN>! So when you're asked
      for a directory to scan, by all means, use this directory too.</P>
     <P>If you're editing the <TT>~/.jigdo-lite</TT> file by hand, be aware
      that multiple scan directories are space separated, for example:</P><PRE>      scanMenu='/var/cache/apt/archives/ /cdrom/'
      </PRE></DIV>
    <DIV><HR>
     <H3><A NAME="JIGDO-FILE-CACHE">7.3. jigdo-file-cache.db</A></H3>
     <P>The cache contains the md5sums of files read when you supply a
      directory at the <TT>Files to scan:</TT> prompt. If you have
      jigdo-file scan the same directory a second time, the scan will be
      very fast.</P>
     <P>This could be useful in the following case: rev0 gets updated to
      rev1. With the rev1 CD images, some packages may have been pushed
      from CD <TT>n</TT> to CD <TT>n+1</TT>, or vice versa. If you had a
      particularly slow link (e.g. modem), you'd try to avoid downloading
      these packages again. For this reason, when downloading the new
      version of CD <TT>n</TT>, you'd let jigdo-lite scan the three CDs <TT
      >n-1</TT>, <TT>n</TT> and <TT>n+1</TT> (or even all 8 CDs if you want
      to be 100% sure).</P>
     <P>If you have jigdo-lite scan the same CDs over and over again while
      updating each of the 8 CD images, the cache will prevent all the data
      on the CDs from being read multiple times.</P>
     <P>The cache is much more important when <SPAN><I>generating</I
      ></SPAN> jigdo files, because you don't want jigdo-file to read in
      your whole 50GB Debian mirror for every generated jigdo file.</P
     ></DIV>
    <DIV><HR>
     <H3><A NAME="LINKS">7.4. Resources</A></H3>
     <P>This HOWTO is winding down to a close, but I thought I'd leave you
      with a few links and references to learn more about the jigdo tools
      and how they work.</P>
     <P></P>
     <DIV>
      <DL>
       <DT><A HREF="http://atterer.net/jigdo" TARGET="_top"
        >http://atterer.net/jigdo</A></DT>
       <DD>
        <P>This is the jigdo home site. You should definitely browse this
         site; lots of information about ports, GUI clients and everything
         under the sun relating to jigdo.</P></DD>
       <DT><A HREF="http://cdimage.debian.org/~costar/jigdo" TARGET="_top"
        >http://cdimage.debian.org/~costar/jigdo</A></DT>
       <DD>
        <P>The Debian page for jigdo-easy (<A HREF="#JIGDO-EASY">Section
         7.1</A>).</P></DD>
       <DT><A HREF="http://www.debian.org/CD/jigdo-cd" TARGET="_top"
        >http://www.debian.org/CD/jigdo-cd</A></DT>
       <DD>
        <P>The main Debian page for jigdo.</P></DD>
       <DT><A
        HREF="http://packages.debian.org/testing/utils/jigdo-file.html"
        TARGET="_top"
        >http://packages.debian.org/testing/utils/jigdo-file.html</A></DT>
       <DD>
        <P>The official webpage for the Debian jigdo-file package.</P></DD
       >
       <DT><A HREF="http://lists.debian.org/search.html" TARGET="_top"
        >http://lists.debian.org/search.html</A></DT>
       <DD>
        <P>You can use this page to search the debian-cd mailing list
         archives.</P></DD>
       <DT><A HREF="http://www.debian.org/MailingLists/subscribe"
        TARGET="_top">http://www.debian.org/MailingLists/subscribe</A></DT
       >
       <DD>
        <P>The subscription page for the debian-cd mailing list.</P></DD>
       <DT><A HREF="https://lists.berlios.de/mailman/listinfo/jigdo-user"
        TARGET="_top"
        >https://lists.berlios.de/mailman/listinfo/jigdo-user</A></DT>
       <DD>
        <P>The subscription page for the official Jigdo mailing list.</P
        ></DD></DL></DIV></DIV></DIV></DIV>
 </BODY>
</HTML>
